"""author: wenyao
   data: 2021/11/22
   project: cjh
"""
#python模块与包

#python模块
#   就是python文件，里面定义了很多函数，类，变量

#模块的分类
#标准模块（库）  无需安装，python自带
#   import random
#第三方模块      需要安装
#   pip install  requests
#   import requests
#自定义模块      自己写的python文件

#python包
#实际上就是一个目录
#包的结构目录里可以有一个__init__.py模块

#py2  vs  py3
#python2: __init__.py 必须的
#python3：__init__.py  可选的


#一个模块的运行有两种方式
#直接运行
#    python  main.py
#导入运行
#    import main


#pyc文件
#python2   模块导入运行的时候会在同级目录下创建一个pyc文件
#python3   模块导入运行的时候会在同级目录下创建一个
#          __pycache__文件夹，pyc文件就放在这里

#pyc文件
#python的执行过程
#1、语法分析
#2、编译成字节码 .pyc
#3、对字节码编译成二进制

#直接运行的模块，不会将字节码保存
#导入运行的模块，会将编译好的字节码保存在磁盘上以.pyc结尾

#下次再进行导入运行的时候，就直接查看字节码文件即可，不需要再重新编译成字节码
#改动了模块，下次运行字节码会重新编译



#打包步骤
#1、创建模块包 sanle  需要一个__init__.py
# 2、在sanle同级目录下创建 打包配置文件 setup.py
# [root@kafka01 modpack]# cat setup.py
# from setuptools import setup, find_packages
#
# setup(
#     #包名
#     name = "sc",
#     #官网
#     url = "http://www.sanchuangedu.cn",
#     #版本号
#     version = "0.0.1",
#     #指定要打包的模块和包
#     packages = find_packages(),
#     #作者
#     author = "wen",
#     #邮箱
#     author_email = "343292019@qq.com",
#     #依赖
#     install_requires = ['xlrd>=1.1.0'],
#     #描述信息
#     description = "this is test package"
# )

#3、运行python3 setup.py check 进行语法检查
#4、运行python3 setup.py sdist  生成tar.gz压缩包，会在同级目录下
#生成一个dist目录
#5、安装
#    进入dist目录
#    pip3 install sc-0.0.1.tar.gz
#6、测试
# [root@kafka01 ~]# python3
# Python 3.6.8 (default, Aug 24 2020, 17:57:11)
# [GCC 8.3.1 20191121 (Red Hat 8.3.1-5)] on linux
# Type "help", "copyright", "credits" or "license" for more information.
# >>> from sanle import sanchuang
# this is sanchuang
# >>> sanchuang.func1()
# this is func1
